The present invention relates to an information processing device, and in particular, relates to an information processing device for executing processing such as emulation by using a plurality of processors.
Some information processing devices such as general-purpose server systems or high-performance personal computers respectively include a multiprocessor system having a plurality of processors. In the case of an information processing device using a multiprocessor system, decentralized processing by a plurality of processors is normally performed. In the case of decentralized processing, each processor is constituted so as to operate optimally.
For example, it may be said that a coprocessor system including a host processor and a coprocessor is a multiprocessor system in a broad sense because of the use of a plurality of processors. The coprocessor is normally constituted by specifying it to specific processing and using it to enhance the performance of the host processor. Because the host processor and coprocessor are connected (coprocessor connection) to each other by an exclusive bus capable of transmitting/receiving a substantial amount of data in a short time, the coprocessor system is suitable for data processing requiring minute timing control.
Emulation may be performed by using this multiprocessor system. The basic function of an emulator for performing emulation forms the execution environment of an information processing device in which execution of application software is originally placed on another information processing device and is realized by software, hardware, or combination of the software and hardware. In the case of the processor of an information processing device for performing emulation, the functionality of the processor (hereinafter, referred to as “target processor”) of an information processing device in which application software is executed at the time of emulation is formed to execute the application software. In this case, the processor serves as an emulator.
When performing emulation using a multiprocessor system, a processor dedicated to emulation may be set in an information processing device as an emulator. In this case, however, it is necessary to develop a processor dedicated to emulation. This is not very realistic because of increased cost and increased development periods. Emulation is also necessary for peripheral equipment to be connected to an information processing device and it is difficult to know what capacity of a processor is necessary at the development stage.
An emulation system is generally divided into a compile method and an interpreter method depending on whether the system executes a plurality of processings of an instruction constituting application software (hereinafter, referred to as “target processor instruction”) or successively executes the processings one by one.
The compile method converts an instruction block constituted of a plurality of instructions as one unit and executes processing of every instruction block. Therefore, the compile method may realize high performance for processing that is frequently repeated. However, in the case of the compile method, the memory capacity required by an emulator increases and the response to self-modifying code is difficult. Moreover, because the fluctuation of performance is largely dependent on the frequency of repetitive execution, there is a problem that timing control is difficult.
Because the interpreter method performs conversion of every instruction, response to self-modifying code is better compared to the case of the compile method, the fluctuation of performance is small, and timing control is easy. Therefore, the interpreter method is suitable for emulation of a processor for a real-time system and high compatibility may be expected. Moreover, the memory capacity required by an emulator is small compared to the case of the compile method. However, the interpreter method has a problem that performance, such as processing speed, is experimentally inferior by ½ to ⅓ compared to the case of the compile method.
To solve the problem of the interpreter method, it is necessary to increase the speed by two or three times compared to the case of using a processor for performing emulation by the compile method. In fact, however, a problem frequently occurs that a processor of such high speed is not present, the cost increases even if the processor is present, or power consumption is large.
Moreover, when a processor for a real-time system is realized by emulation, it is impossible to guarantee a high compatibility unless a logically correct result is obtained or the timing for processing is adjusted.